home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt40s1.arc / DISPLYTT.MOD < prev    next >
Text File  |  1987-07-22  |  5KB  |  100 lines

  1. (*----------------------------------------------------------------------*)
  2. (*     Display_Transfer_Types --- Display transfer type menu            *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Display_Transfer_Types(     Direction     : ShortStr;
  6.                                   VAR Transfer_Kind : Transfer_Type );
  7.  
  8. (*----------------------------------------------------------------------*)
  9. (*                                                                      *)
  10. (*     Procedure:  Display_Transfer_Types                               *)
  11. (*                                                                      *)
  12. (*     Purpose:    Display transfer type menu.                          *)
  13. (*                                                                      *)
  14. (*     Calling Sequence:                                                *)
  15. (*                                                                      *)
  16. (*        Display_Transfer_Types(     Direction     : ShortStr;         *)
  17. (*                                VAR Transfer_Kind : Transfer_Type );  *)
  18. (*                                                                      *)
  19. (*           Direction     --- string giving direction of transfer      *)
  20. (*           Transfer_Kind --- Type of transfer protocol to be used     *)
  21. (*                                                                      *)
  22. (*----------------------------------------------------------------------*)
  23.  
  24. VAR
  25.    Transfer_Menu      : Menu_Type;
  26.    Transfer_Menu_Size : INTEGER;
  27.    I                  : INTEGER;
  28.    J                  : INTEGER;
  29.    Default            : INTEGER;
  30.    T                  : Transfer_Type;
  31.    Transfer_Names     : AnyStr;
  32.    Trans_Prots        : ARRAY[1..Max_Transfer_Types] OF Transfer_Type;
  33.  
  34. BEGIN (* Display_Transfer_Types *)
  35.  
  36.                                    (* Figure number of transfer types *)
  37.                                    (* defined                         *)
  38.    Transfer_Menu_Size  := 15;
  39.    Transfer_Names      := 'Ascii;Xmodem (Checksum);Xmodem (CRC);Kermit;Telink;Modem7 (Checksum);' +
  40.                           'Modem7 (CRC);Xmodem 1K;Xmodem 1K G;Ymodem Batch;' +
  41.                           'Ymodem G Batch;Zmodem;WXmodem;RLink;SeaLink;';
  42.  
  43.                                    (* Copy in types of built-in protocols *)
  44.    Default := -1;
  45.  
  46.    FOR I := 1 TO 15 DO
  47.       BEGIN
  48.          Trans_Prots[I] := Transfers[I];
  49.          IF ( Default_Transfer_Type = Trans_Prots[I] ) THEN
  50.             Default := I;
  51.       END;
  52.                                    (* Add names of user-defined protocols *)
  53.                                    (* to list.                            *)
  54.    FOR T := PUser1 TO PUser5 DO
  55.       IF ( Trans_Type_Name[T] <> '  ' ) THEN
  56.          BEGIN
  57.             Transfer_Names                  := Transfer_Names +
  58.                                                LTrim( Transfer_Name_List[SUCC(ORD(T))] ) + ';';
  59.             Transfer_Menu_Size              := SUCC( Transfer_Menu_Size );
  60.             Trans_Prots[Transfer_Menu_Size] := T;
  61.             IF ( Default_Transfer_Type = Trans_Prots[Transfer_Menu_Size] ) THEN
  62.                Default := Transfer_Menu_Size;
  63.          END;
  64.                                    (* Assume Xmodem checksum if we didn't *)
  65.                                    (* find it.                            *)
  66.  
  67.    IF ( Default < 0 ) THEN Default := 2;
  68.  
  69.                                    (* Get transfer menu *)
  70.  
  71.    Make_A_Menu( Transfer_Menu, Transfer_Menu_Size, 3, 10, 50, 21, Default,
  72.                 'Choose file transfer protocol for ' + Direction + ':',
  73.                 Transfer_Names, TRUE );
  74.  
  75.                                    (* Alter item positions if > 15 *)
  76.  
  77.    IF ( Transfer_Menu_Size > 11 ) THEN
  78.       FOR I := 12 TO Transfer_Menu_Size DO
  79.          WITH Transfer_Menu.Menu_Entries[I] DO
  80.             BEGIN
  81.                Menu_Item_Row    := Transfer_Menu.Menu_Entries[I - 11].Menu_Item_Row;
  82.                Menu_Item_Column := Transfer_Menu.Menu_Entries[I - 11].Menu_Item_Column + 30;
  83.             END;
  84.                                    (* Get transfer type *)
  85.  
  86.    Menu_Display_Choices( Transfer_Menu );
  87.  
  88.    I := Menu_Get_Choice( Transfer_Menu , Dont_Erase_Menu );
  89.  
  90.                                    (* Get transfer protocol *)
  91.    IF ( I > 0 ) THEN
  92.       BEGIN
  93.          Transfer_Kind         := Trans_Prots[ I ];
  94.          Default_Transfer_Type := Transfer_Kind;
  95.       END
  96.    ELSE
  97.       Transfer_Kind := None;
  98.  
  99. END   (* Display_Transfer_Types *);
  100.